package com.livew.framework.base.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.livew.framework.base.model.BaseModel;

public interface BaseMapper<T extends BaseModel> {
	
	/**
	 * 根据主键查询
	 * @param id
	 * @return
	 */
	T selectByPrimaryKey(Long id);
	
	int deleteByPrimaryKey(Long id);

	int insert(T record);

	int insertSelective(T record);

	int updateByPrimaryKeySelective(T record);

	int updateByPrimaryKey(T record);
	
	/**
	 * 查询所有
	 * @return
	 */
	List<T> selectAll();
	
	/**
	 * 带条件查询
	 * @param record
	 * @return
	 */
	List<T> selectListByCondition(T record);
	
	/**
	 *  根据主键查询
	 * @param ids
	 * @return
	 */
	List<T> selectByIdList(@Param("list")List<Long> ids);

	/**
	 * 分页使用
	 * @param t
	 * @return
	 */
	List<T> selectPagination(T t);
	
}
